﻿#ifndef HeaderFile_H
#define HeaderFile_H
/********************************************************************************
** @ Date:2025/04/17
** @ Author: HanJiaXin
** @ Description:公共头文件
** @ Version:1.0.0
** @ ClassName:
** @ Fun:
********************************************************************************/
#include <QMutex>
#include <QString>
#include <QMap>
#include <QVector>
#include <QDateTime>
#include <QPointF>
#include <QVariant>
#include <QSqlRecord>
#include <QThread>
#include <QWaitCondition>
#include <QModbusTcpClient>
#include <QLabel>

struct SAddrData
{
	QString       m_sAddrData;          //测点地址
	int           m_nAddrLength;        //测点地址长度
	quint64       m_nTagVal;            //测点数值
	int           m_nOffset;			//测点补偿值
	SAddrData()
	{
		m_sAddrData = "";
		m_nAddrLength = 0;
		m_nOffset = 0;
		m_nTagVal = 0;
	}
};

enum EDevType
{
	enOntology,       //设备本体 PLC
	enSubDev1,        //子设备1  摄像头
};

enum EDevTypeCode
{
	enCO,        //一氧化碳
	enGas,       //可燃气体
	enPM25,      //PM25
	enPM10,      //PM10
	enTemp,	     //温度
	enHum,       //湿度
	enUltrasonic,//超声波
	enCamer,     //图像相机
	enIR,        //红外相机
	enVoice,     //声音传感器
};

struct SCtrInfo
{
	QString m_sGuid;    //对象GUID
	int m_nCtrCmd;      //控制命令类型
	bool m_bCtrSync;    //同步控制/异步控制
	int m_nCtrDevType;	//控制类型 0:本体  1:摄像头
	int m_nSubCtrDevType;//云台控制设备类型 0:图像相机 1:红外相机
	WId m_hWid;
	QLabel* m_pLabel;	
	QString m_sImgUrl;	//保存图片路径
	QString m_sReData;	//控制命令返回结果
	SCtrInfo()
	{
		m_sGuid = "";
		m_nCtrCmd = -1;
		m_nCtrDevType = 0;
		m_bCtrSync = false;
	}
	~SCtrInfo()
	{
	}
};

enum ECCamerCmdType
{
	enCNoCmdCamer,    //无命令
	enCRealPlay,      //开启预览
	enCStopRealPlay,  //停止预览
	enCCapture,       //拍照
	enCGetImage,	  //拍照并划线
	enCLogin,		  //登录命令
};

enum EWidgetType
{
	enMainWindows,//主界面
	enCorrectRealInfo,//跑偏缩略图
	enCorrectState,//跑偏状态卡片
	enCamerPlayer,//摄像头画面播放界面
	enPlcOper,//纠偏高级功能
	enLog,//日志模块卡片
};

enum EDevPointType
{
	enAlgOkNum,								//算法在线数量
	enAlgErrNum,							//算法离线数量
	enCamerOkNum,							//摄像头在线数量
	enCamerErrNum,							//摄像头离线数量
	enPointStateOkNum,						//跑偏检测点正常数量
	enPointStateErrNum,						//跑偏检测点异常数量
	enPlcConnectState,                      //PLC连接状态
	enRecRemoteAuto,                        //远程状态下自动(0:关闭 1:开启)
	enRecRemoteHand,                        //远程状态下手动(0:关闭 1:开启)
	enRecOffsetValue,                       //偏移量
	enRecCamerLeft,                         //相机左反馈
	enRecCamerRight,                        //相机右反馈
	enRecErrorAlarm,                        //纠偏异常报警
	enRecRemoteCtlFeedback,                 //远程控制反馈 
	enRecLocalCtlFeedback,                  //本地控制反馈 
	enRecLocalLeftRun,                      //本地左偏运行 
	enRecLocalRightRun,                     //本地右偏运行 
	enRecMotorRunFeedback,                  //电机运行反馈 
	enRecLeftYVRunFeedback,                 //左偏YV运行反馈 
	enRecRightYVRunFeedback,                //右偏YV运行反馈 
	enLeftCurrVal,                          //左侧实时偏离值（cm）
	enRightCurrVal,                         //右侧实时偏离值（cm）
	enCamerState,					        //摄像头在线状态 0离线 1在线
	enAlgState,					            //算法在线状态   0离线 1在线
};

#endif // !HeaderFile_H

